menuconfig INFINIBAND
	tristate "InfiniBand support"
	depends on PCI || BROKEN
	depends on HAS_IOMEM
	depends on NET
	depends on INET
	depends on m || IPV6 != m
	select IRQ_POLL
	---help---
	  Core support for InfiniBand (IB).  Make sure to also select
	  any protocols you wish to use as well as drivers for your
	  InfiniBand hardware.

if INFINIBAND

config INFINIBAND_USER_MAD
	tristate "InfiniBand userspace MAD support"
	depends on INFINIBAND
	---help---
	  Userspace InfiniBand Management Datagram (MAD) support.  This
	  is the kernel side of the userspace MAD support, which allows
	  userspace processes to send and receive MADs. You will also
	  need libibumad from <http://www.openfabrics.org/downloads/management/>.

config INFINIBAND_USER_ACCESS
	tristate "InfiniBand userspace access (verbs and CM)"
	select ANON_INODES
	---help---
	  Userspace InfiniBand access support.  This enables the
	  kernel side of userspace verbs and the userspace
	  communication manager (CM).  This allows userspace processes
	  to set up connections and directly access InfiniBand
	  hardware for fast-path operations.  You will also need
	  libibverbs, libibcm and a hardware driver library from
	  <http://www.openfabrics.org/git/>.

config INFINIBAND_USER_ACCESS_UCM
	bool "Userspace CM (UCM, DEPRECATED)"
	depends on BROKEN
	depends on INFINIBAND_USER_ACCESS
	help
	  The UCM module has known security flaws, which no one is
	  interested to fix. The user-space part of this code was
	  dropped from the upstream a long time ago.

	  This option is DEPRECATED and planned to be removed.


config INFINIBAND_USER_MEM
	bool
	depends on INFINIBAND_USER_ACCESS != n
	default y

config INFINIBAND_ON_DEMAND_PAGING
	bool "InfiniBand on-demand paging support"
	depends on INFINIBAND_USER_MEM
	select MMU_NOTIFIER
	default y
	---help---
	  On demand paging support for the InfiniBand subsystem.
	  Together with driver support this allows registration of
	  memory regions without pinning their pages, fetching the
	  pages on demand instead.

config INFINIBAND_ADDR_TRANS
	bool
	depends on INFINIBAND
	default y

config INFINIBAND_ADDR_TRANS_CONFIGFS
	bool
	depends on INFINIBAND_ADDR_TRANS && CONFIGFS_FS && !(INFINIBAND=y && CONFIGFS_FS=m)
	default y
	---help---
	  ConfigFS support for RDMA communication manager (CM).
	  This allows the user to config the default GID type that the CM
	  uses for each device, when initiaing new connections.

source "drivers/infiniband/hw/mthca/Kconfig"
source "drivers/infiniband/hw/qib/Kconfig"
source "drivers/infiniband/hw/cxgb3/Kconfig"
source "drivers/infiniband/hw/cxgb4/Kconfig"
source "drivers/infiniband/hw/i40iw/Kconfig"
source "drivers/infiniband/hw/mlx4/Kconfig"
source "drivers/infiniband/hw/mlx5/Kconfig"
source "drivers/infiniband/hw/nes/Kconfig"
source "drivers/infiniband/hw/ocrdma/Kconfig"
source "drivers/infiniband/hw/usnic/Kconfig"
source "drivers/infiniband/hw/hns/Kconfig"

source "drivers/infiniband/ulp/ipoib/Kconfig"

source "drivers/infiniband/ulp/srp/Kconfig"
source "drivers/infiniband/ulp/srpt/Kconfig"

source "drivers/infiniband/ulp/iser/Kconfig"
source "drivers/infiniband/ulp/isert/Kconfig"

source "drivers/infiniband/sw/rdmavt/Kconfig"
source "drivers/infiniband/sw/rxe/Kconfig"

source "drivers/infiniband/hw/hfi1/Kconfig"

source "drivers/infiniband/hw/qedr/Kconfig"

endif # INFINIBAND
